#!/usr/bin/env python3
"""
JH子系统真实数据导入脚本
将data/job_info/job_data.json中的真实职位数据导入到JH子系统数据库
"""

import asyncio
import sys
import os
from pathlib import Path

# 添加项目根目录到路径
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

async def main():
    """主函数"""
    print("🎯 JH子系统真实数据导入器")
    print("="*50)
    
    try:
        from src.jh_subsystem.job_data_service import job_data_service
        
        # 检查数据文件是否存在
        job_data_file = Path(__file__).parent.parent / "data" / "job_info" / "job_data.json"
        if not job_data_file.exists():
            print(f"❌ 数据文件不存在: {job_data_file}")
            print("请确保已从CSV文件转换生成job_data.json文件")
            return
        
        print(f"📁 发现数据文件: {job_data_file}")
        
        # 检查当前数据库状态
        job_data_service._ensure_db_exists()
        
        print("📊 开始导入真实职位数据...")
        
        # 强制使用真实数据初始化数据库
        await job_data_service.initialize_database(use_real_data=True)
        
        print("📈 获取导入后的统计信息...")
        stats = await job_data_service.get_overview_statistics()
        
        if stats:
            print("\n✅ 真实数据导入完成！")
            print(f"📊 数据统计:")
            print(f"  总职位数: {stats['total_jobs']:,}")
            print(f"  平均薪资: {stats['avg_salary']:.0f}元/年")
            print(f"  薪资范围: {stats['min_salary']:.0f} - {stats['max_salary']:.0f}元/年")
            print(f"  远程职位: {stats['remote_jobs']:,} ({stats['remote_percentage']}%)")
            
            print(f"\n🔥 热门技能 (Top 5):")
            for i, skill in enumerate(stats['top_skills'][:5], 1):
                print(f"  {i}. {skill['skill']}: {skill['job_count']:,}个职位, 平均薪资{skill['avg_salary']:.0f}元")
            
            print(f"\n🏙️ 热门城市 (Top 5):")
            for i, location in enumerate(stats['top_locations'][:5], 1):
                print(f"  {i}. {location['location']}: {location['job_count']:,}个职位, 平均薪资{location['avg_salary']:.0f}元")
                
            print(f"\n💰 薪资分布:")
            for dist in stats['salary_distribution']:
                print(f"  {dist['range']}: {dist['count']:,}个职位")
        else:
            print("❌ 无法获取统计信息")
        
        print("\n🚀 现在可以重新启动系统查看真实数据了！")
        print("JH子系统将显示所有导入的真实职位数据，而不再是500条虚拟数据")
        
    except Exception as e:
        print(f"❌ 导入真实数据失败: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    asyncio.run(main()) 